﻿// 4596. 二进制灭亡.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://www.acwing.com/problem/content/4599/


有一种斐波那契进制数，该进制的数字表示为类似于二进制数的 01
 序列，但是其中的位权不是 2
 的幂，而是斐波那契级数中的元素（1,2,3,5,8…
）。

斐波那契级数的定义如下：

F0=1,F1=2
Fn=Fn−1+Fn−2
（n≥2
）
例如，1101001Fib=F0+F3+F5+F6=1+5+13+21=40
。

每个整数都可以用这种进制来表示，但是表示方式不一定唯一，例如 40
 也可以表示为 10001001Fib
。

然而，对于任何整数，在该进制下都有一个不包含相邻数字 1
 的唯一表示，我们称其为规范表示。

例如，10001001Fib
 就是 40
 的斐波那契进制规范表示。

现在，给定两个斐波那契进制表示的数字（不一定是规范表示），请你将它们相加并输出结果的斐波那契进制规范表示。

输入格式
输入包含多组测试数据。

每组数据占一行，包含两个 01
 字符串，表示斐波那契进制表示下的数字 X
 和 Y
。

输出格式
每组数据输出结果时，具体要求如下：

第一行输出规范表示的数字 X
，其左侧可能有若干空格。

第二行输出一个 +，后跟规范表示的数字 Y
，两者之间可能有若干空格。

第三行首先输出两个空格，然后是一串与 X+Y
 的规范表示长度相同的由 - 组成的字符串。

第四行首先输出两个空格，然后是 X+Y
 的规范表示。

X
 和 Y
 在输出时，左侧可能有若干空格，这是为了使 X,Y
 和 X+Y
 的最低有效位在输出时位于同一列中。

每组数据输出完毕后，输出一个空行。

数据范围
每个输入最多包含 100
 组数据。
X
 和 Y
 在输入中都不超过 40
 位，
不保证 X
 和 Y
 不含前导 0
。

输入样例：
11101 1101
1 1
输出样例：
   100101
+   10001
  -------
  1001000

   1
+  1
  --
  10
*/
int main()
{
    std::cout << "Hello World!\n";
}

 